package karaoke.negocio;

import java.util.Collection;

import karaoke.dao.ProductoDAO;
import karaoke.excepcion.DAOExcepcion;
import karaoke.modelo.Local;
import karaoke.modelo.Producto;
import karaoke.modelo.TipoProducto;

public class GestionProductos {

	public Collection<Producto> buscarPorNombreYCodigo(String nombreCodigo)
			throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();
		return dao.buscarPorNombreCodigo(nombreCodigo, 0);
	}
	
	public Collection<Producto> buscarPorNombreYCodigo(String nombreCodigo, int idlocal)
			throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();
		return dao.buscarPorNombreCodigo(nombreCodigo, idlocal);
	}

	public Producto insertar(String nombre, double precio,
			boolean disponible, TipoProducto idtipoproducto, Local local)
			throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();

		Producto po = new Producto();
		po.setNombre(nombre);
		po.setPrecio(precio);
		po.setDisponible(disponible);
		po.setIdtipoproducto(idtipoproducto);
		po.setLocal(local);

		return dao.insertar(po);
	}

	public Producto obtener(int idProducto) throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();
		return dao.obtener(idProducto);
	}

	public void eliminar(int idProducto) throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();
		dao.eliminar(idProducto);
	}

	public Producto actualizar(int idproducto, String nombre, double precio,
			boolean disponible, TipoProducto idtipoproducto) throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();

		Producto po = new Producto();
		po.setIdproducto(idproducto);
		po.setNombre(nombre);
		po.setPrecio(precio);
		po.setDisponible(disponible);
		po.setIdtipoproducto(idtipoproducto);

		return dao.actualizar(po);
	}

	public Collection<Producto> listar() throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();
		return dao.listar();
	}
	
	public Collection<Producto> listarByLocal(int idlocal) throws DAOExcepcion {
		ProductoDAO dao = new ProductoDAO();
		return dao.listarByLocal(idlocal);
	}
}
